home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyo (Python 2.3)
-
-
- class Logger:
-
- def __init__(self, name = None):
- import sys
- self.name = name
- self._indent = 0
- self._dbg = 0
- self._suspend = 0
- self._wxLog = 0
- self._outstream = sys.stdout
- self._outstream_stack = []
-
-
- def IsEnabled():
- return self._dbg
-
-
- def IsSuspended():
- return _suspend
-
-
- def log(self, *args, **kwargs):
- if not (self._dbg) and not ('enable' in kwargs.keys()):
- return None
-
- if self._dbg and len(args) and not (self._suspend):
- strs = [ str(arg) for arg in args ]
- output = ' '.join(strs)
- output = ' ' * 3 * self._indent + output
- if self._wxLog:
- wxLogMessage = wxLogMessage
- import wxPython.wx
- wxLogMessage(output)
- else:
- self._outstream.write(output + '\n')
- self._outstream.flush()
-
- for kwarg, value in kwargs.items():
- if kwarg == 'indent':
- self.SetIndent(value)
- continue
- if kwarg == 'enable':
- self.SetEnabled(value)
- continue
- if kwarg == 'suspend':
- self.SetSuspend(value)
- continue
- if kwarg == 'wxlog':
- self.SetWxLog(value)
- continue
- if kwarg == 'stream':
- self.SetStream(value)
- continue
-
-
- dbg = log
- msg = log
- __call__ = log
-
- def SetEnabled(self, value):
- if value:
- old_dbg = self._dbg
- self._dbg = 1
- if not old_dbg:
- self.dbg('dbg enabled')
-
- elif self._dbg:
- self.dbg('dbg disabled')
- self._dbg = 0
-
-
-
- def SetSuspend(self, value):
- if value:
- self._suspend += 1
- elif self._suspend > 0:
- self._suspend -= 1
-
-
-
- def SetIndent(self, value):
- if value:
- self._indent += 1
- elif self._indent > 0:
- self._indent -= 1
-
-
-
- def SetWxLog(self, value):
- self._wxLog = value
-
-
- def SetStream(self, value):
- if value:
- self._outstream_stack.append(self._outstream)
- self._outstream = value
- elif value is None and len(self._outstream_stack) > 0:
- self._outstream = self._outstream_stack.pop(-1)
-
-
-
- if __name__ == '__main__':
- from wxPython.wx import *
- wxLog_SetActiveTarget(wxLogStderr())
- logger = Logger('module')
- dbg = logger.dbg
- dbg(enable = 1)
- logger('test __call__ interface')
- dbg('testing wxLog output to stderr:', wxlog = 1, indent = 1)
- dbg('1,2,3...')
- dbg('testing wxLogNull:')
- devnull = wxLogNull()
- dbg('4,5,6...')
- del devnull
- dbg('(resuming to wxLogStdErr)', '7,8,9...', indent = 0)
- dbg('disabling wxLog output, switching to stderr:')
- dbg(wxlog = 0, stream = sys.stderr)
- dbg(logger._outstream, 'switching back to stdout:')
- dbg(stream = None)
- dbg(logger._outstream)
-
- def foo(str):
- dbg('foo:', indent = 1)
- dbg(str, indent = 0)
-
- foo('testing dbg inside function')
-
- class bar(Logger):
-
- def __init__(self, name):
- Logger.__init__(self, name)
-
-
- def enable(self, value):
- self.dbg(enable = value)
-
-
- def foo(self, str):
- self.dbg('foo:', indent = 1)
- self.dbg(str, indent = 0)
-
-
- f = bar('class mixin')
- f.foo("shouldn't print")
- f.enable(1)
- f.foo('should print')
- dbg('test completed.', enable = 0)
- dbg('(double-checking ;-)')
-
-